ccfcac91ec366a73bcf8291e8066ebdf121686af,beetl-core/src/main/java/org/beetl/ext/nutz/BeetlViewMaker.java,BeetlViewMaker,init,#,30

Before Change


		Configuration cfg;
		try
		{
			cfg = Configuration.defaultConfiguration();
			WebAppResourceLoader resourceLoader = new WebAppResourceLoader();
			groupTemplate = new GroupTemplate(resourceLoader, cfg);
			inited = true;

After Change


    
    public void init() throws IOException {
        log.debug("beetl init ....");
        Configuration cfg = Configuration.defaultConfiguration();
        Properties prop = new Properties();
        InputStream ins = Configuration.class.getResourceAsStream("/beetl.properties");
        if (ins != null) {
            log.debug("found beetl.properties, loading ...");
            try {
                prop.load(ins);
            }
            finally {
                Streams.safeClose(ins);
            }
        }
        if (!prop.contains(Configuration.RESOURCE_LOADER)) {
            // 默认选用WebAppResourceLoader,除�用户自定义了RESOURCE_LOADER
            log.debug("no custom RESOURCE_LOADER found , select WebAppResourceLoader");
            cfg.setResourceLoader(WebAppResourceLoader.class.getName());
        }
        if (!prop.contains(Configuration.DIRECT_BYTE_OUTPUT)) {
            // 默认�用DIRECT_BYTE_OUTPUT,除�用户自定义, 一般�会.
            log.debug("no custom DIRECT_BYTE_OUTPUT found , set to true");
            // 当DIRECT_BYTE_OUTPUT为真时, beetl渲染会通过getOutputStream获�输出�
            // 而BeetlView会使用LazyResponseWrapper代�getOutputStream方法
            // 从而实现在模�输出之�,��真正调用getOutputStream
            // 这样@Fail视图就能正常工作了
            cfg.setDirectByteOutput(true);
        }
        if (!prop.contains(Configuration.ERROR_HANDLER)) {
            // 没有自定义ERROR_HANDLER,用定制的
            cfg.setErrorHandlerClass(LogErrorHandler.class.getName());
        }
        groupTemplate = new GroupTemplate(cfg);
        render = new WebRender(groupTemplate);
        log.debug("beetl init complete");
    }